1
โครงสร้างธรรมชาติ: ปรัชญาการโอเวอร์โหลดปฏิบัติการ
AI037Lesson 17
00:00

ปรัชญาของ โครงสร้างธรรมชาติ กล่าวว่า ชนิดที่ผู้ใช้กำหนดควรดำเนินการเหมือน ผู้มีสิทธิ์เท่าเทียม. โดยการนำเอา การโอเวอร์โหลดปฏิบัติการ, เราอนุญาตให้คลาสใช้สัญลักษณ์มาตรฐาน (เช่น + หรือ ==), ซึ่งช่วยลดภาระทางความคิด และทำให้เป็นไปตาม หลักการน้อยที่สุดของการประหลาดใจ.

1. โครงสร้างและกระบวนการส่งมอบ

ปฏิบัติการคือฟังก์ชันที่มีชื่อพิเศษ: คำสำคัญ operator ต่อจากสัญลักษณ์ ปฏิบัติการแบบ ปฏิบัติการแบบเอกลักษณ์ มีอาร์กิวเมนต์เดียว ในขณะที่ปฏิบัติการแบบ ปฏิบัติการแบบไบนารี มีสองอาร์กิวเมนต์ เมื่อกำหนดเป็น ฟังก์ชันสมาชิก, อาร์กิวเมนต์ด้านซ้ายจะถูกผูกกับ ตัวชี้นี้โดยนัย (a.operator+(b)) เป็นแบบ ไม่ใช่สมาชิก, ทั้งสองอาร์กิวเมนต์ระบุอย่างชัดเจน (operator+(a, b))

สามารถโอเวอร์โหลดได้+ - * / % ^& | ~ ! = < >+= -= *= /= << >>== != <= >= && ||++ -- , ->* -> () []ไม่สามารถโอเวอร์โหลดได้:: (ขอบเขต).* (การเรียกข้อมูลสมาชิก). (จุด)?: (เงื่อนไข)ตาราง 14.1. สิทธิ์การใช้งานปฏิบัติการ (อ้างอิง หน้า 684)

2. ข้อจำกัดและจริยธรรม

C++ ป้องกันการ 'ทำลายภาษา': คุณไม่สามารถสร้างสัญลักษณ์ใหม่ (เช่น **) หรือเปลี่ยนแปลงการดำเนินการสำหรับชนิดที่มีอยู่แล้ว (เช่น int + int). ลำดับความสำคัญและการจัดลำดับเป็น คงที่. หลักการออกแบบ: คลาสที่กำหนด == รวมเข้ากับอัลกอริธึมไลบรารีได้อย่างราบรื่น เช่น std::find.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>